divert( -1)

   Tcl uses {" ... "} to return a { single-literal string }. 
an alternative "{ ... }" is unlikely to the point of not making any sense.

   Language lawyers?
changequote ifdef(`dumpdef_',,`

   ifdef(`_DOCUMENT_DIVERSION',,`define(`_DOCUMENT_DIVERSION',-1)')
   changequote("{,}")
   changecom("{##}")


   define("{undefinedCallback}","{$1( shift($@))}")

    This template strongly suggests another definition:

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{undefinedCallback}"}",

	The default behavior of an _mcl() macro whose first argument
	is undefined.  If not defined by the user, it returns the
	first argument and the remaining arguments wrapped in balanced
	parentheses.

)
divert( -1)

   define("{_}","{ifelse($1,,,"{ifdef("{_$1}","{_$1(shift($@))}","{undefinedCallback($@)}")}")}")

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

The _mcl() macro is the basic macro of the package.

)
divert( -1)



   define("{define_}","{define("{_$1}",shift($@))}")

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

)
divert( -1)

   define("{dumpdef_}","{ifelse($1,,,"{dumpdef("{_$1}")}")}")


divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

)
divert( -1)
   
   ifdef("{esyscmd}",,"{define("{esyscmd}","{dnl
define("{fn}",maketemp(/tmp/cmd.XXXXXX))syscmd($1 > fn)include(fn)syscmd(rm -f fn)}")}")

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

)
divert( -1)

   define("{einclude}","{include(esyscmd(source setpathlib; whipath $1))}")

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

)
divert( -1)

    EMPTY Template:

divert( _DOCUMENT_DIVERSION)
_(describe,,"{"{}"}",

)
divert( -1)

')

changequote   changequote("{,}")

divert(0)dnl


